package face.jvm;

/**
 * Created by zhangyanfei on 2019/6/6.
 * happen before
 * 源代码 编译器优化重排 指令重排 内存重排
 *
 * 考虑数据依赖   指令重排
 *
 * 内存屏障 内存 强制刷出cpu 缓存数据
 *
 * 指令重排  double check
 *
 * null
 * 初始化没有完成
 *
 * a=new Student();
 * 分配对象空间
 * 初始化对象
 * 实例指向内存空间
 *
 *
 * @author zhangyanfei
 * @date 2019/06/06
 */
public class CodeSort {
    int a = 0;
    boolean flag = false;

    public void method1() {
        a = 1;
        flag = true;
    }

    public void method2() {
        if (flag) {
            a = a + 5;
            System.out.println(a);
        }
    }

    /**
     * 多线程下
     *
     * @param args
     */
    public static void main(String[] args) {

    }

}
